유한 체적법 (Finite Volume Method, FVM)
1. 개요
[유한 체적법]은 미분 방정식으로 표현되는 물리 보존 법칙을 유한한 크기의 작은 체적(Control Volume)에 대해 적분하여 수치적으로 해결하는 수치해석 기법이다.
이 방법은 물리량의 보존성(Conservativeness)을 엄격하게 유지한다는 특징이 있어, 질량, 운동량, 에너지 보존이 필수적인 [전산유체역학] 분야에서 표준적인 해석 기법으로 널리 사용된다.
2. 기본 원리 및 수학적 기초
유한 체적법의 핵심은 지배 방정식의 미분형이 아닌 적분형 보존 법칙(Integral form of conservation laws)을 사용하는 것이다. 임의의 제어 체적 $V$ 내에서 물리량 $\phi$의 변화는 다음과 같은 일반적인 보존 방정식으로 표현된다.
$$\frac{\partial}{\partial t} \int_{V} \rho \phi \, dV + \oint_{A} \rho \phi (\mathbf{u} \cdot \mathbf{n}) \, dA = \oint_{A} \Gamma \nabla \phi \cdot \mathbf{n} \, dA + \int_{V} S_\phi \, dV$$
기호 정의:
* $\rho$: 유체의 밀도 (Density)
* $\mathbf{u}$: 속도 벡터 (Velocity vector)
* $\mathbf{n}$: 표면의 단위 법선 벡터 (Unit normal vector)
* $\Gamma$: 확산 계수 (Diffusion coefficient)
* $\phi$: 해석 대상 물리량 (Scalar/Vector property)
항별 설명:
* 제어 체적(Control Volume): 해석 영역을 나눈 작은 단위 공간.
* 플럭스(Flux): 단위 시간당 단위 면적을 통해 흐르는 물리량.
* $\rho \류 항(Convection term), 유체의 흐름에 의해 운반되는 양.
* $\Gamma \nabla \phi \cdot \mathbf{n}$: 확산 항(Diffusion term), 농도나 온도 차이에 의해 퍼지는 양.
* $S_\phi$:** 소스 항(Source term), 체적 내부에서 생성되거나 소멸되는 양.
가우스 발산 정리 (Gauss's Divergence Theorem)
FVM은 체적 적분을 표면 적분으로 변환하기 위해 [[가우스 발산 정리]]를 활용한다. 이를 통해 체적 내부의 변화량을 경 수 있으며, 이는 인접한 셀끼리 플럭스를 공유하게 하여 전체 영역에서의 물리량 보존을 보장한다.
[도식도: 제어 체적과 플럭스 개념]
(중심점 $P$를 가진 육면체 셀 $\rightarrow$ 각 면(Face)을 통해 들어오고 나가는 플럭스 $\Phi_{in}, \Phi_{out}$ 표시 $\rightarrow$ 내부 소스 $S$ 표시)
설명: 셀 내부의 물리량 변화량 = (유입 플럭스 - 유출 플럭스) + 생성량
3. 이산화 과정 (Discretization)
이산화란 연속적인 물리 공간을 유한한 수의 격자로 나누어 대수 방정식으로 변환하는 과정이다. FVM에서 격자(Grid/Mesh)의 각 셀(Cell)이 곧 제어 체적(Control Volume)이 된다.
격자 구성 방식
- 셀 중심 방식 (Cell-centered): 물리량 $\phi$를 각 제어 체적의 중심점에서 정의한다. 구현이 직관적이며 대부분의 상용 CFD 소프트웨어에서 채택한다.
- 셀 정점 방식 (Cell-vertex): 물리량을 격자의 꼭짓점(Node)에서 정의하고, 정점을 공유하는 셀들의 평균으로 체적 값을 계산한다.
격자 유형 비교
| 구분 |
구조적 격자 (Structured Grid) |
비구조적 격자 (Unstructured Grid) |
| 형태 |
정형화된 i, j, k 인덱스 체계 (사각형/육면체) |
임의의 연결성 (삼각형/사면체/다면체) |
| 생성 난이도 |
단순 형상에 유리, 복잡한 형상은 어려움 |
복잡한 기하학적 형상에 매우 유연함 |
| 계산 효율 |
메모리 접근이 빠르고 계산 효율이 높음 |
인덱싱을 위한 추가 메모리 및 연산 필요 |
| 정확도 |
격자 정렬 방향에 따라 정확도 차이 발생 |
격자 크기 및 품질(Skewness)에 민감함 |
4. 보간법 및 플럭스 계산
셀 중심 방식에서는 물리량이 중심에 정의되어 있으므로, 경계면(Face)에서의 값을 결정하기 위한 보간법(Interpolation)이 필요하다.
주요 보간 기법
- 중심 차분 (Central Differencing): 인접한 두 셀 중심 값의 산술 평균을 사용한다. 2차 정확도를 가지나, 대류가 강한 흐름(고 Peclet 수)에서 수치적 진동(Oscillation)이 발생할 수 있다.
- 상류 차분 (Upwind Differencing): 유동의 방향(Upwind)에 있는 셀의 값을 경계면 값으로 사용한다. 매우 안정적이지만, 수치 확산(Numerical Diffusion)으로 인해 정확도가 1차로 떨어진다.
- 고차 보간법 (QUICK, TVD): 상류 차분과 중심 차분의 단점을 보완하여 안정성과 정확도를 동시에 확보하려는 기법들이다.
보간법 특성 비교
| 보간법 |
정확도 |
안정성 |
특징 |
| Central |
높음 (2차) |
낮음 |
물리적 확산이 적으나 진동 발생 가능 |
| Upwind |
낮음 (1차) |
매우 높음 |
수치 확산이 심해 결과가 뭉개질 수 있음 |
| QUICK |
매우 높음 (3차) |
보통 |
계산 비용이 높고 경계에서 오버슈트 발생 가능 |
| TVD |
높음 |
높음 |
불연속면(충격파 등)에서 진동을 억제함 |
5. 경계 조건 설정 (Boundary Conditions)
물리적 경계에서의 조건을 수치적으로 구현하는 것은 해의 수렴성과 정확도에 결정적인 영향을 미친다.
- 디리클레 경계 조건 (Dirichlet BC): 경계면에서 물리량의 값을 직접 지정하는 방식 (예: 벽면 온도 고정, 입구 속도 지정).
- 노이만 경계 조건 (Neumann BC): 경계면에서의 기울기(Flux)를 지정하는 방식 (예: 단열 벽면 $\partial T/\partial n = 0$, 자유 유출 경계).
- 혼합 경계 조건 (Mixed/Robin BC): 값과 기울기의 선형 조합으로 정의하는 방식 (예: 대류 열전달 경계 조건).
6. 수치 해석 알고리즘
이산화된 방정식은 $\mathbf{Ax = b}$ 형태의 거대한 선형 방정식 시스템으로 변환된다.
선형 방정식 풀이 및 수렴
- 반복법 (Iterative Methods): 직접법(Direct method)은 메모리 소모가 너무 크므로, Gauss-Seidel이나 Conjugate Gradient와 같은 반복법을 사용하여 오차가 허용 범위 내로 들어올 때까지 계산한다.
- 수렴 판정 기준 (Convergence Criteria): 잔차(Residual) $\mathbf{R = b - Ax}$의 노름(Norm)이 특정 임계값(예: $10^{-4} \sim 10^{-6}$) 이하로 떨어질 때 수렴한 것으로 판단한다.
- 안정성 분석: 시간 전진법 사용 시 [CFL 조건]을 만족해야 한다.
$$\text{CFL} = \frac{u \Delta t}{\Delta x} \le C_{max}$$
- $\Delta t$: 시간 간격 (Time step)
- $\Delta x$: 격자 크기 (Grid spacing)
- $u$: 유속 (Velocity)
위 조건을 유지해야 수치적 발산을 막을 수 있다.
압력-속도 결합 (Pressure-Velocity Coupling)
비압축성 유동에서는 압력에 대한 독립적인 지배 방정식이 없으므로, 연속 방정식(질량 보존)을 압력 보정 방정식으로 활용하는 알고리즘이 필요하다.
* [[SIMPLE 알고리즘]] (Semi-Implicit Method for Pressure Linked Equations): 가장 대표적인 알고리즘으로, 추측 압력 $\rightarrow$ 속도 계산 $\rightarrow$ 압력 보정 $\rightarrow$ 속도 보정의 반복 과정을 거친다.
* PISO, PIMPLE: SIMPLE의 변형으로, 과도 응답(Transient) 해석의 효율성을 높인 알고리즘들이다.
7. 장단점 및 활용 분야
수치해석 기법 비교
| 특성 |
[유한차분법] |
[유한요소법] |
[유한체적법] |
| 기초 원리 |
미분 방정식의 테일러 전개 |
변분법 / 가중 잔차법 |
적분형 보존 법칙 |
| 격자 유연성 |
낮음 (주로 구조적 격자) |
매우 높음 (임의 요소) |
높음 (다양한 셀 형태) |
| 보존성 |
국부적 보존 어려움 |
전역적 보존 중심 |
엄격한 국부 보존성 |
| 주요 용도 |
단순 형상, 기상 예측 |
구조 해석, 전자기학 |
유체 흐름, 열전달 |
FVM의 한계점
FVM은 강력한 보존성을 가지지만 다음과 같은 단점이 존재한다.
* 고차 정확도 구현의 어려움: 고차 정확도를 구현할 때 FEM에 비해 수학적 복잡도가 크게 증가한다.
* 격자 품질 의존성: 격자의 왜곡도(Skewness)가 심할 경우, 경계면 플럭스 계산의 오차가 커져 수렴성이 급격히 저하될 수 있다.
활용 분야 및 소프트웨어
- 활용 분야: 항공우주(날개 주변 유동), 자동차(공기 저항 분석), 에너지(터빈, 열교환기), 기상 예측, 혈류 해석 등.
- 주요 소프트웨어 사례:
- ANSYS Fluent / CFX: 업계 표준 상용 CFD 소프트웨어.
- OpenFOAM: 오픈 소스 기반의 강력한 FVM 라이브러리.
- Star-CCM+: 복잡한 형상의 격자 생성 및 해석에 특화된 상용 툴.
- COMSOL Multiphysics: FVM 외에 FEM을 주력으로 하지만 유체 모듈에서 FVM 개념 적용.
# 유한 체적법 (Finite Volume Method, FVM)
## 1. 개요
**[[유한 체적법]](Finite Volume Method, FVM)**은 미분 방정식으로 표현되는 물리 보존 법칙을 유한한 크기의 작은 체적(Control Volume)에 대해 적분하여 수치적으로 해결하는 수치해석 기법이다.
이 방법은 물리량의 보존성(Conservativeness)을 엄격하게 유지한다는 특징이 있어, 질량, 운동량, 에너지 보존이 필수적인 **[[전산유체역학]](Computational Fluid Dynamics, CFD)** 분야에서 표준적인 해석 기법으로 널리 사용된다.
## 2. 기본 원리 및 수학적 기초
유한 체적법의 핵심은 지배 방정식의 미분형이 아닌 **적분형 보존 법칙(Integral form of conservation laws)**을 사용하는 것이다. 임의의 제어 체적 $V$ 내에서 물리량 $\phi$의 변화는 다음과 같은 일반적인 보존 방정식으로 표현된다.
$$\frac{\partial}{\partial t} \int_{V} \rho \phi \, dV + \oint_{A} \rho \phi (\mathbf{u} \cdot \mathbf{n}) \, dA = \oint_{A} \Gamma \nabla \phi \cdot \mathbf{n} \, dA + \int_{V} S_\phi \, dV$$
**기호 정의:**
* $\rho$: 유체의 밀도 (Density)
* $\mathbf{u}$: 속도 벡터 (Velocity vector)
* $\mathbf{n}$: 표면의 단위 법선 벡터 (Unit normal vector)
* $\Gamma$: 확산 계수 (Diffusion coefficient)
* $\phi$: 해석 대상 물리량 (Scalar/Vector property)
**항별 설명:**
* **제어 체적(Control Volume):** 해석 영역을 나눈 작은 단위 공간.
* **플럭스(Flux):** 단위 시간당 단위 면적을 통해 흐르는 물리량.
* **$\rho \류 항(Convection term), 유체의 흐름에 의해 운반되는 양.
* **$\Gamma \nabla \phi \cdot \mathbf{n}$:** 확산 항(Diffusion term), 농도나 온도 차이에 의해 퍼지는 양.
* **$S_\phi$:** 소스 항(Source term), 체적 내부에서 생성되거나 소멸되는 양.
### 가우스 발산 정리 (Gauss's Divergence Theorem)
FVM은 체적 적분을 표면 적분으로 변환하기 위해 **[[가우스 발산 정리]]**를 활용한다. 이를 통해 체적 내부의 변화량을 경 수 있으며, 이는 인접한 셀끼리 플럭스를 공유하게 하여 전체 영역에서의 물리량 보존을 보장한다.
> **[도식도: 제어 체적과 플럭스 개념]**
> (중심점 $P$를 가진 육면체 셀 $\rightarrow$ 각 면(Face)을 통해 들어오고 나가는 플럭스 $\Phi_{in}, \Phi_{out}$ 표시 $\rightarrow$ 내부 소스 $S$ 표시)
> *설명: 셀 내부의 물리량 변화량 = (유입 플럭스 - 유출 플럭스) + 생성량*
## 3. 이산화 과정 (Discretization)
이산화란 연속적인 물리 공간을 유한한 수의 격자로 나누어 대수 방정식으로 변환하는 과정이다. **FVM에서 격자(Grid/Mesh)의 각 셀(Cell)이 곧 제어 체적(Control Volume)이 된다.**
### 격자 구성 방식
1. **셀 중심 방식 (Cell-centered):** 물리량 $\phi$를 각 제어 체적의 중심점에서 정의한다. 구현이 직관적이며 대부분의 상용 CFD 소프트웨어에서 채택한다.
2. **셀 정점 방식 (Cell-vertex):** 물리량을 격자의 꼭짓점(Node)에서 정의하고, 정점을 공유하는 셀들의 평균으로 체적 값을 계산한다.
### 격자 유형 비교
| 구분 | 구조적 격자 (Structured Grid) | 비구조적 격자 (Unstructured Grid) |
| :--- | :--- | :--- |
| **형태** | 정형화된 i, j, k 인덱스 체계 (사각형/육면체) | 임의의 연결성 (삼각형/사면체/다면체) |
| **생성 난이도** | 단순 형상에 유리, 복잡한 형상은 어려움 | 복잡한 기하학적 형상에 매우 유연함 |
| **계산 효율** | 메모리 접근이 빠르고 계산 효율이 높음 | 인덱싱을 위한 추가 메모리 및 연산 필요 |
| **정확도** | 격자 정렬 방향에 따라 정확도 차이 발생 | 격자 크기 및 품질(Skewness)에 민감함 |
## 4. 보간법 및 플럭스 계산
셀 중심 방식에서는 물리량이 중심에 정의되어 있으므로, 경계면(Face)에서의 값을 결정하기 위한 **보간법(Interpolation)**이 필요하다.
### 주요 보간 기법
* **중심 차분 (Central Differencing):** 인접한 두 셀 중심 값의 산술 평균을 사용한다. 2차 정확도를 가지나, 대류가 강한 흐름(고 Peclet 수)에서 수치적 진동(Oscillation)이 발생할 수 있다.
* **상류 차분 (Upwind Differencing):** 유동의 방향(Upwind)에 있는 셀의 값을 경계면 값으로 사용한다. 매우 안정적이지만, 수치 확산(Numerical Diffusion)으로 인해 정확도가 1차로 떨어진다.
* **고차 보간법 (QUICK, TVD):** 상류 차분과 중심 차분의 단점을 보완하여 안정성과 정확도를 동시에 확보하려는 기법들이다.
### 보간법 특성 비교
| 보간법 | 정확도 | 안정성 | 특징 |
| :--- | :--- | :--- | :--- |
| **Central** | 높음 (2차) | 낮음 | 물리적 확산이 적으나 진동 발생 가능 |
| **Upwind** | 낮음 (1차) | 매우 높음 | 수치 확산이 심해 결과가 뭉개질 수 있음 |
| **QUICK** | 매우 높음 (3차) | 보통 | 계산 비용이 높고 경계에서 오버슈트 발생 가능 |
| **TVD** | 높음 | 높음 | 불연속면(충격파 등)에서 진동을 억제함 |
## 5. 경계 조건 설정 (Boundary Conditions)
물리적 경계에서의 조건을 수치적으로 구현하는 것은 해의 수렴성과 정확도에 결정적인 영향을 미친다.
* **디리클레 경계 조건 (Dirichlet BC):** 경계면에서 물리량의 값을 직접 지정하는 방식 (예: 벽면 온도 고정, 입구 속도 지정).
* **노이만 경계 조건 (Neumann BC):** 경계면에서의 기울기(Flux)를 지정하는 방식 (예: 단열 벽면 $\partial T/\partial n = 0$, 자유 유출 경계).
* **혼합 경계 조건 (Mixed/Robin BC):** 값과 기울기의 선형 조합으로 정의하는 방식 (예: 대류 열전달 경계 조건).
## 6. 수치 해석 알고리즘
이산화된 방정식은 $\mathbf{Ax = b}$ 형태의 거대한 선형 방정식 시스템으로 변환된다.
### 선형 방정식 풀이 및 수렴
* **반복법 (Iterative Methods):** 직접법(Direct method)은 메모리 소모가 너무 크므로, Gauss-Seidel이나 Conjugate Gradient와 같은 반복법을 사용하여 오차가 허용 범위 내로 들어올 때까지 계산한다.
* **수렴 판정 기준 (Convergence Criteria):** 잔차(Residual) $\mathbf{R = b - Ax}$의 노름(Norm)이 특정 임계값(예: $10^{-4} \sim 10^{-6}$) 이하로 떨어질 때 수렴한 것으로 판단한다.
* **안정성 분석:** 시간 전진법 사용 시 **[[CFL 조건]](Courant-Friedrichs-Lewy condition)**을 만족해야 한다.
$$\text{CFL} = \frac{u \Delta t}{\Delta x} \le C_{max}$$
* $\Delta t$: 시간 간격 (Time step)
* $\Delta x$: 격자 크기 (Grid spacing)
* $u$: 유속 (Velocity)
위 조건을 유지해야 수치적 발산을 막을 수 있다.
### 압력-속도 결합 (Pressure-Velocity Coupling)
비압축성 유동에서는 압력에 대한 독립적인 지배 방정식이 없으므로, 연속 방정식(질량 보존)을 압력 보정 방정식으로 활용하는 알고리즘이 필요하다.
* **[[SIMPLE 알고리즘]] (Semi-Implicit Method for Pressure Linked Equations):** 가장 대표적인 알고리즘으로, 추측 압력 $\rightarrow$ 속도 계산 $\rightarrow$ 압력 보정 $\rightarrow$ 속도 보정의 반복 과정을 거친다.
* **PISO, PIMPLE:** SIMPLE의 변형으로, 과도 응답(Transient) 해석의 효율성을 높인 알고리즘들이다.
## 7. 장단점 및 활용 분야
### 수치해석 기법 비교
| 특성 | [[유한차분법]](FDM) | [[유한요소법]](FEM) | [[유한체적법]](FVM) |
| :--- | :--- | :--- | :--- |
| **기초 원리** | 미분 방정식의 테일러 전개 | 변분법 / 가중 잔차법 | 적분형 보존 법칙 |
| **격자 유연성** | 낮음 (주로 구조적 격자) | 매우 높음 (임의 요소) | 높음 (다양한 셀 형태) |
| **보존성** | 국부적 보존 어려움 | 전역적 보존 중심 | **엄격한 국부 보존성** |
| **주요 용도** | 단순 형상, 기상 예측 | 구조 해석, 전자기학 | **유체 흐름, 열전달** |
### FVM의 한계점
FVM은 강력한 보존성을 가지지만 다음과 같은 단점이 존재한다.
* **고차 정확도 구현의 어려움:** 고차 정확도를 구현할 때 FEM에 비해 수학적 복잡도가 크게 증가한다.
* **격자 품질 의존성:** 격자의 왜곡도(Skewness)가 심할 경우, 경계면 플럭스 계산의 오차가 커져 수렴성이 급격히 저하될 수 있다.
### 활용 분야 및 소프트웨어
* **활용 분야:** 항공우주(날개 주변 유동), 자동차(공기 저항 분석), 에너지(터빈, 열교환기), 기상 예측, 혈류 해석 등.
* **주요 소프트웨어 사례:**
* **ANSYS Fluent / CFX:** 업계 표준 상용 CFD 소프트웨어.
* **OpenFOAM:** 오픈 소스 기반의 강력한 FVM 라이브러리.
* **Star-CCM+:** 복잡한 형상의 격자 생성 및 해석에 특화된 상용 툴.
* **COMSOL Multiphysics:** FVM 외에 FEM을 주력으로 하지만 유체 모듈에서 FVM 개념 적용.